Skip to content
0

Tbeam - 技巧 项目

技巧 1

把一个数组对象的部分属性给另一个空数组对象的部分属性,该空数组对象自带创建这些部分属性,如 state.sourceList 内容:

json
state.sourceList = [
	{
		sourceId: '1111',
        sourceName: '可乐',
        sourceTime: '2021-11-07'
	},
    {
		sourceId: '2222',
        sourceName: '冰糖',
        sourceTime: '2021-11-06'
	},
    {
		sourceId: '3333',
        sourceName: '雪梨',
        sourceTime: '2021-11-05'
	},
]

空数组 state.sourceNameList valuelabel 的获得 sourceName 的值

json
state.sourceNameList = [
	{
		label: `可乐`,
        value: `可乐`
	},
    {
		label: `冰糖`,
        value: `冰糖`
	},
    {
		label: `雪梨`,
        value: `雪梨`
	},
]

将该数组对象的 sourceName 给一个空对象数组的 valuelabel 属性,代码如下:

js
// 把value绑定到select需要的key
state.sourceList.map((item) => {
  state.sourceNameList.push(
    Object.assign({}, {}, { value: item.sourceName, label: item.sourceName })
  );
});

state.sourceList 指:state 对象的 sourceList 属性

state.sourceNameList 指:state 对象的 sourceNameList 属性

js
const state = {
    sourceList: [...],
    sourceNameList: []
}

技巧 2

去掉数组集合的重复部分,只获取不重复部分,如 state.sourceNameList 内容为:

json
state.sourceNameList = [
	{
		label: '1111',
        value: '可乐'
	},
    {
		label: '1111',
        value: '可乐'
	},
    {
		label: '2222',
        value: '冰糖'
	},
    {
		label: '2222',
        value: '冰糖'
	},
    {
		label: '3333',
        value: '雪梨'
	},
]

去掉上方重复的部分,获取不重复的部分给 state.sourceNameList

json
state.sourceNameList = [
	{
		label: '1111',
        value: '可乐'
	},
    {
		label: '2222',
        value: '冰糖'
	},
    {
		label: '3333',
        value: '雪梨'
	},
]

去重代码为:

js
// 去重
let hash = [];
state.sourceNameList = state.sourceNameList.reduce((item, next) => {
  hash[next.label] ? "" : (hash[next.label] = true && item.push(next));
  return item;
}, []);

state.sourceNameList 指:state 对象的 sourceNameList 属性

js
const state = {
  sourceNameList: [],
};

hash 自定义名,next.label 的 label 取决于要去重的属性

最近更新